package cn.csc.framework.pay.core.client.impl.lkl.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.gson.annotations.SerializedName;
import com.lkl.laop.sdk.request.model.V3LabsTradeAccBusiFieldInfo;
import lombok.Getter;
import lombok.Setter;

/**
 * 聚合扫码-退款交易 响应
 * Author: liuchuang
 * Date: 2023/11/4
 * Time: 22:15
 * Declaration: All Rights Reserved !!!
 */
@Getter
@Setter
public class V3LabsTransRelationRefundResponse extends V3CommResponse{

    @SerializedName("resp_data")
    @JsonProperty("resp_data")
    private V3LabsTransRelationRefundRespData respData;

    @Getter
    @Setter
    public static class V3LabsTransRelationRefundRespData extends V3CommRespData{

        /**
         * merchant_no	商户号	M	String(32)	拉卡拉分配的银联商户号（请求接口中商户号）
         * out_trade_no	商户请求流水号	M	String(32)	请求中的商户请求流水号
         * trade_no	拉卡拉退款单号	M	String(32)	拉卡拉交易流水号
         * log_no	拉卡拉对账单流水号	M	String(14)	拉卡拉对账单流水号
         * acc_trade_no	账户端交易订单号	C	String(32)	账户端交易流水号
         * account_type	钱包类型	C	String(32)	微信：WECHAT 支付宝：ALIPAY 银联：UQRCODEPAY 翼支付: BESTPAY 苏宁易付宝: SUNING
         * total_amount	交易金额	M	String(12)	单位分，整数数字型字符串
         * refund_amount	申请退款金额	M	String(12)	单位分，整数数字型字符串
         * payer_amount	商户实际退还金额	M	String(12)	单位分，整数数字型字符串
         * trade_time	退款时间	C	String(14)	实际退款时间。yyyyMMddHHmmss
         * origin_trade_no	原拉卡拉订单号	C	String(32)	如果请求中携带，则返回
         * origin_out_trade_no	原商户请求流水号	C	String(64)	如果请求中携带，则返回
         * up_iss_addn_data	单品营销 附加数据	C	String(8000)	参与单品营销优惠时返回
         * up_coupon_info	银联优惠信息、出资方信息	C	String(500)	参与单品营销优惠时返回
         * trade_info	出资方信息	C	String(512)	数字货币中行返回示例说明：[{“fundchannel”:”BOC”,”amount”:”18”}]
         */

        @SerializedName("merchant_no")
        @JsonProperty("merchant_no")
        private String merchantNo;

        @SerializedName("out_trade_no")
        @JsonProperty("out_trade_no")
        private String outTradeNo;

        @SerializedName("log_no")
        @JsonProperty("log_no")
        private String logNo;

        @SerializedName("acc_trade_no")
        @JsonProperty("acc_trade_no")
        private String accTradeNo;

        @SerializedName("account_type")
        @JsonProperty("account_type")
        private String accountType;

        @SerializedName("total_amount")
        @JsonProperty("total_amount")
        private String totalAmount;

        @SerializedName("refund_amount")
        @JsonProperty("refund_amount")
        private String refundAmount;

        @SerializedName("payer_amount")
        @JsonProperty("payer_amount")
        private String payerAmount;

        @SerializedName("origin_trade_no")
        @JsonProperty("origin_trade_no")
        private String originTradeNo;

        @SerializedName("origin_out_trade_no")
        @JsonProperty("origin_out_trade_no")
        private String originOutTradeNo;

        @SerializedName("up_iss_addn_data")
        @JsonProperty("up_iss_addn_data")
        private String upIssAddnData;

        @SerializedName("up_coupon_info")
        @JsonProperty("up_coupon_info")
        private String upCouponInfo;


        @SerializedName("trade_info")
        @JsonProperty("trade_info")
        private String tradeInfo;

    }

}
